<?php
declare(strict_types=1);
/**
 * Created by PhpStorm.
 * User: wumengmeng <wu_mengmeng@foxmail.com>
 * Date: 2019/4/26 0026
 * Time: 11:18
 */

namespace Modules\Admin\Service;

use HiCommon\Repository\EntrustPermissionsRepository;

class PermissionService
{

    /**
     * 获取所有权限
     *
     * @return array
     * @author wumengmeng <wu_mengmeng@foxmail.com>
     */
    public function get_all(){
        try {
            $arr_option = ['order'=>['key'=>'id','value'=>'asc']];
            $data = EntrustPermissionsRepository::get_all($arr_option)->toarray();
            return  hello_success('成功',$data);
        } catch (\Exception $exception) {
            return hello_error('失败',[],$exception->getMessage());
        }
    }

//    /**
//     *
//     *
//     * @return array
//     * @author wumengmeng <wu_mengmeng@foxmail.com>
//     */
//    public function get_all_menu(){
//        try {
////            $arr_option = ['order'=>['key'=>'id','value'=>'asc']];
////            $data = EntrustPermissionsRepository::get_all($arr_option)->toarray();
////            return  hello_success('成功',$data);
//        } catch (\Exception $exception) {
//            return hello_error('失败',[],$exception->getMessage());
//        }
//    }

//    /**
//     * 获取分页数据
//     *
//     * @return array
//     * @author wumengmeng <wu_mengmeng@foxmail.com>
//     */
//    public function get_list()
//    {
//        try {
//
//            $arr_option = [
//              'order'=>['key'=>'sort','value'=>'asc'],
//              'where'=>['model'=>'admin']
//            ];
//            $data = EntrustPermissionsRepository::base_get_all($arr_option)->toarray();
//            $data = make_tree($data);//转换成树形数组
//            $data = tree_to_one_tree($data);//树形数组转换成一维伪树形数组
//            $arr_data = [];
//            foreach ($data as $value)
//            {
//                $value['pre_ico'] = str_repeat('&nbsp;&nbsp;',$value['level']);
//                $arr_data[] = $value;
//            }
//            return  hello_success('成功',$arr_data);
//        } catch (\Exception $exception) {
//            return hello_error('失败',[],$exception->getMessage());
//        }
//    }

//    /**
//     * 添加一条数据
//     *
//     * @param $arr_input
//     *
//     * @return array|\Illuminate\Http\RedirectResponse
//     * @author wumengmeng <wu_mengmeng@foxmail.com>
//     */
//    public function add_one($arr_input)
//    {
//        $arr_input = hi_array_del_null($arr_input);
//        try {
//            //添加
//            $res = EntrustPermissionsRepository::add_one($arr_input)->toarray();
//            if(empty($res)){
//                return hello_error('添加失败');
//            }
//            permission_cache_refresh();
//            return  hello_success('成功',$res);
//        } catch (\Exception $exception) {
//            return hello_error('失败',[],$exception->getMessage());
//        }
//    }

//    /**
//     * 查询一条数据
//     *
//     * @param int $n_id
//     *
//     * @return mixed
//     * @author wumengmeng <wu_mengmeng@foxmail.com>
//     */
//    public function get_one(int $n_id)
//    {
//        try {
//            $n_id = (int) $n_id;
//            if($n_id <= 0) {
//                hello_error('数据ID不能为空');
//            }
//
//            //查询
//            $res = EntrustPermissionsRepository::get_one($n_id)->toarray();
//            if(empty($res)){
//                return hello_error('查询失败');
//            }
//
//            return  hello_success('查询成功',$res);
//        } catch (\Exception $exception) {
//            return hello_error('失败',[],$exception->getMessage());
//        }
//    }

//    /**
//     * 修改一条数据
//     *
//     * @param array $arr_input
//     *
//     * @return array|\Illuminate\Http\RedirectResponse
//     * @author wumengmeng <wu_mengmeng@foxmail.com>
//     */
//    public function edit_one(array $arr_input)
//    {
//        $arr_input = hi_array_del_null($arr_input);
//        try {
//            $arr_input['id'] = (int)$arr_input['id'];
//            if ($arr_input['id'] <= 0) {
//                return hello_error('数据id不能为空');
//            }
//
//            $res = EntrustPermissionsRepository::edit_one($arr_input);
//            if ($res === false) {
//                return hello_error('操作失败');
//            }
//            return hello_success('成功',$arr_input);
//        } catch (\Exception $exception) {
//            return hello_error('失败',[],$exception->getMessage());
//        }
//    }

//    /**
//     * 修改单个字段
//     *
//     * @param $arr_input
//     *
//     * @return array
//     * @author wumengmeng <wu_mengmeng@foxmail.com>
//     */
//    public function change_one_state($arr_input){
//        try {
//            $arr_input['id'] = (int)$arr_input['id'];
//            if ($arr_input['id'] <= 0) {
//                return hello_error('数据id不能为空');
//            }
//
//            $res = EntrustPermissionsRepository::edit_one($arr_input);
//            if ($res === false) {
//                return hello_error('操作失败');
//            }
//            return hello_success('成功');
//        } catch (\Exception $exception) {
//            return hello_error('失败',[],$exception->getMessage());
//        }
//    }

//    /**
//     * 删除一条数据
//     *
//     * @param int $n_id
//     *
//     * @return array|\Illuminate\Http\RedirectResponse
//     * @author wumengmeng <wu_mengmeng@foxmail.com>
//     */
//    public function delete_one($n_id)
//    {
//        try {
//            if ($n_id <= 0) {
//                return hello_error('数据id不能为空');
//            }
//
////            //有子数据的不能删除
////            $res = EntrustPermissionsRepository::get_all_by_where(['pid'=>$n_id])->toarray();
////            if(!empty($res)){
////                return hello_error('有子数据,不能删除');
////            }
//
//            $arr_whereIn = tree_childrenids(cache_permission(),$n_id);
//            $res = EntrustPermissionsRepository::base_delete_by_wherein('id',$arr_whereIn);
//            if($res === false){
//                return hello_error('操作失败');
//            }
//            return  hello_success('成功');
//
//        } catch (\Exception $exception) {
//            return hello_error('失败',[],$exception->getMessage());
//        }
//    }

}